package com.mathpractise.question.generator;

import com.mathpractise.model.Question;
import com.mathpractise.model.TrainingConfig;
import com.mathpractise.model.enums.QuestionType;

import java.util.List;

/**
 * 题目生成器接口
 * 
 * 所有题型的生成器都需要实现该接口，负责根据配置生成指定类型的题目
 */
public interface QuestionGenerator {
    
    /**
     * 获取该生成器支持的题型
     * 
     * @return 支持的题型枚举值
     */
    QuestionType getSupportedType();
    
    /**
     * 根据训练配置生成题目列表
     * 
     * @param trainingConfig 训练配置
     * @return 题目列表
     */
    List<Question> generateQuestions(TrainingConfig trainingConfig);
    
    /**
     * 生成单个题目
     * 
     * @param trainingConfig 训练配置
     * @return 题目
     */
    Question generateQuestion(TrainingConfig trainingConfig);
}